package com.yidu.action;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.yidu.common.JsonMsg;
import com.yidu.common.Pages;
import com.yidu.domain.ListenBackstageUser;
import com.yidu.domain.ListenMusicalType;
import com.yidu.service.ListenMusicalTypeService;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author YZJ
 * @since 2018-11-27
 */
@Controller
@RequestMapping("/listenMusicalType")
public class ListenMusicalTypeController {
	@Resource
	ListenMusicalTypeService mapper;
	/**
	 * 分页查询显示
	 * @param title
	 * @param page
	 * @param limit
	 * @return
	 */
	@RequestMapping("selectAll")
	@ResponseBody
	public Map<String ,Object> selectAll(@RequestParam(value = "key[title]", required =false)String title,
			@RequestParam(value = "page" , required =false)Integer page,
			@RequestParam(value = "limit" , required =false)Integer limit){
			//new 模具类
			ListenMusicalType mt =new ListenMusicalType();
			//判断搜索类型不能为空
			if(title!=null && !"".equals(title)) {
				//将搜索框内的值赋给模具类
				mt.setMtName(title);
			}
			//new 分页工具类
			Pages pa =new Pages();
			//判断开始页数与每页最大页数不为空
			if(page!=null && limit!=null) {
				//将当前页数赋值给页面上的页数
				pa.setCurPage(page);
				//将每页最大页数赋值再给页面
				pa.setMaxResult(limit);
			}
			//创建一个map
			Map<String, Object> map=new HashMap<String, Object>();
			//添加类型名称
			map.put("mtName", mt.getMtName());
			//添加行数
			map.put("firstRows", pa.getFirstRows());
			//添加最大行数
			map.put("maxResult", pa.getMaxResult());
			//查询所有的方法
			List<ListenMusicalType> list =mapper.selectAll(map);
			//查询总行数的方法
			int rows =mapper.selectC(map);
			//创建一个maps
			Map<String, Object> maps =new HashMap<String,Object>();
			maps.put("code", 0);
			maps.put("msg", "");
			maps.put("count",rows);
			//将list放入map中
			maps.put("data", list);
			return maps;
	}
	/**
	 * 在乐器表内显示类型
	 * @param mt
	 * @return
	 */
	@RequestMapping("mutype")
	@ResponseBody
	public List<ListenMusicalType> selectName(ListenMusicalType mt){
		//查询所有类型名称
		return mapper.selectName(mt);
	}
	/**
	 * 根据ID查询
	 * @param mtId
	 * @return
	 */
	@RequestMapping("selectID")
	@ResponseBody
	public ListenMusicalType selectID(String mtId) {
		//根据ID查询所有
		return mapper.selectByPrimaryKey(mtId);
	}
	/**
	 * 增加或者修改
	 * @param mt
	 * @return
	 */
	@RequestMapping("updateoradd")
	@ResponseBody
	public void updateoradd(ListenMusicalType mt,HttpSession session) {
		//获取当前操作用户的session
		ListenBackstageUser users = (ListenBackstageUser) session.getAttribute("user");
		//获取当前时间
		Date data =new Date();
		//将当前时间赋值给操作时间
		mt.setOpenTime(data);
		//判断类型ID不能为空
		if(mt.getMtId()!=null && !"".equals(mt.getMtId())) {
			//将获取到的操作人赋值给模具类
			mt.setOper(users.getBuName());
			//修改的方法
			mapper.updateByPrimaryKeySelective(mt);
		}else {
			//将获取到的操作人赋值给模具类
			mt.setOper(users.getBuName());
			//增加的方法
			mapper.insertSelective(mt);
		}
	}
	/**
	 * 删除
	 * @param id
	 * @return
	 */
	@RequestMapping("delecti")
	@ResponseBody
	public JsonMsg delecti(String id) {
		//new 工具类
		JsonMsg msg =new JsonMsg();
		//向前台传1
		msg.setDatas(1);
		//提示语句
		msg.setMsg("删除成功");
		//调用删除方法
		mapper.updatei(id);
		return msg;
	}
}

